/**
 * 指导者类 - 建造者模式中的指导者
 * 
 * 负责按照特定的顺序调用建造者的方法，以构建产品
 */
package com.mkx.creationals.builder;

public class Director {
    private Builder builder;
    
    /**
     * 设置建造者
     * 
     * @param builder 建造者实例
     */
    public void setBuilder(Builder builder) {
        this.builder = builder;
    }
    
    /**
     * 构建完整产品
     */
    public void construct() {
        if (builder != null) {
            builder.buildPartA();
            builder.buildPartB();
            builder.buildPartC();
        }
    }
    
    /**
     * 构建简化版本的产品
     */
    public void constructSimple() {
        if (builder != null) {
            builder.buildPartA();
            builder.buildPartC();
        }
    }
}